// 订单相关类型定义

// 产品类型
export interface Product {
  id: number;
  title: string;
  cover: string;
  product_type: number; // 1-Pod, 2-Nex, 3-Product
  description?: string;
}

// 订单类型
export interface Order {
  id: number;
  order_id: string; // 订单号
  product: Product; // 产品信息
  quality: number; // 数量
  price: number; // 总价格
  status: number; // 支付状态: 0-未支付, 1-支付成功, 2-支付失败
  pay_method?: string; // 支付方式
  pay_time?: string; // 支付时间
  shipping_address?: string; // 收货地址
  logistics_status?: string; // 物流状态
  create_at: string; // 创建时间
  updated_at?: string; // 更新时间
  name?: string; // 商品名称
}

// 订单列表查询参数
export interface OrderQueryParams {
  page?: number;
  size?: number;
  status?: string;
  start?: number;
}

// 订单列表响应
export interface OrderListResponse {
  data: Order[];
  total?: number;
  has_more?: boolean;
  page?: number;
  size?: number;
}

// 产品类型枚举
export enum ProductType {
  POD = 1, // Pod
  NEX = 2, // Nex
  PRODUCT = 3, // Product
}

// 支付状态枚举
export enum PaymentStatus {
  PENDING = 0, // 未支付
  PAID = 1, // 支付成功
  FAILED = 2, // 退款
}

// 工具函数
export const getProductTypeName = (productType: number): string => {
  switch (productType) {
    case ProductType.POD:
      return 'Pod';
    case ProductType.NEX:
      return 'Nex';
    case ProductType.PRODUCT:
      return 'Product';
    default:
      return 'Unknown';
  }
};

export const getPaymentStatusName = (status: number): string => {
  switch (status) {
    case PaymentStatus.PENDING:
      return 'Unpaid';
    case PaymentStatus.PAID:
      return 'Paid';
    case PaymentStatus.FAILED:
      return 'Refunded';
    default:
      return 'Unknown';
  }
};
